From 6ab565b84a13e24a29f061aae900abcb02aaf304 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?= =?utf8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= Date: Sun, 26 May 2019 15:36:03 +0000 Subject: [PATCH] GDK W32: Adjust to new popup surfaces 1) Handle GDK_SURFACE_POPUP in RegisterGdkClass() (for now pretend it's the same as GDK_SURFACE_TOPLEVEL) 2) Remove useless code from GDK_SURFACE_TOPLEVEL case in _gdk_win32_display_create_surface() (now there's just GDK_SURFACE_TOPLEVEL there, no need for a type check) 3) Have a separate case for GDK_SURFACE_POPUP and ensure that it doesn't get WS_CHILDWINDOW (and neither should GDK_SURFACE_TEMP). --- gdk/win32/gdksurface-win32.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/gdk/win32/gdksurface-win32.c b/gdk/win32/gdksurface-win32.c index bad6006021..5ccc7525e9 100644 --- a/gdk/win32/gdksurface-win32.c +++ b/gdk/win32/gdksurface-win32.c @@ -401,6 +401,7 @@ RegisterGdkClass (GdkSurfaceType wtype, GdkSurfaceTypeHint wtype_hint) switch (wtype) { case GDK_SURFACE_TOPLEVEL: + case GDK_SURFACE_POPUP: /* MSDN: CS_OWNDC is needed for OpenGL contexts */ wcl.style |= CS_OWNDC; if (0 == klassTOPLEVEL) @@ -539,19 +540,22 @@ _gdk_win32_display_create_surface (GdkDisplay *display, hparent = GetDesktopWindow (); } /* MSDN: We need WS_CLIPCHILDREN and WS_CLIPSIBLINGS for GL Context Creation */ - if (surface_type == GDK_SURFACE_TOPLEVEL) - dwStyle = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS; - else - dwStyle = WS_OVERLAPPED | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION | WS_THICKFRAME | WS_CLIPCHILDREN; + dwStyle = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS; offset_x = _gdk_offset_x; offset_y = _gdk_offset_y; break; case GDK_SURFACE_POPUP: + dwStyle = WS_POPUP; + dwStyle |= WS_CLIPCHILDREN | WS_CLIPSIBLINGS; + offset_x = _gdk_offset_x; + offset_y = _gdk_offset_y; + break; + case GDK_SURFACE_TEMP: /* A temp window is not necessarily a top level window */ - dwStyle = parent == NULL ? WS_POPUP : WS_CHILDWINDOW; + dwStyle = WS_POPUP; dwStyle |= WS_CLIPCHILDREN | WS_CLIPSIBLINGS; dwExStyle |= WS_EX_TOOLWINDOW | WS_EX_TOPMOST; offset_x = _gdk_offset_x; -- 2.30.2